其他
一次服务端性能问题排查过程
临近双11又开始另一轮的性能测试,陆续给大家奉上性能测试系列篇,从性能测试理论、性能测试案例高延迟(响应时间长)、CPU问题、内存问题、线上问题实战和性能测试书籍推荐等篇章。更多性能文章见文末链接。
1.定时任务,
2.测试代码,
3.业务代码,
4.FGC。
然后就根据猜想一项一项测试验证。
停掉所有定时任务,和开发确认没有段时间插入定时日志或者其他数据库操作。
检查测试代码,测试代码和正确的测试代码只有很少的几行差异,而且全部是http连接规范的写法,不至于有问题。
业务代码,检查所有业务日志,tomcat日志,jstack抓trace等,都未见异常。
Full GC 通过抓jstat信息,发现在50分左右确实出现fgc如图:
但在相同时间,该接口的TPS有少量下降, 不是原来遇到的大量下降,如图
故排除fgc问题。貌似再次测试进入死胡同,再次怀疑此应用代码问题。
就在早上突然想到是不是负载均衡工具有问题????到公司迫不及待的测试下。
通过测试,去掉负载haproxy代理,自己写了一个随机分配到四个应用节点地址,通过三个小时测试,没有出现上述怪异的问题。
告诫各位,在性能测试时,特别要小心软负载工具的应用,对性能测试的影响, haproxy工具坑我好几次了,使用时一定要小心。
· 推 荐 阅 读 ·RECOMMENDATION
服务端性能问题排查及优化---CPU高问题分析
服务端性能问题排查及优化 ---内存问题分析